package com.wingsboat.common.protect.keyresolver;


import com.wingsboat.common.protect.annotation.Idempotent;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;

/**
 * 幂等 Key 解析器接口
 *
 * @author wangzhong
 */
public interface IdempotentKeyResolver {
    /**
     * 解析一个 Key
     *
     * @param idempotent 幂等注解
     * @param joinPoint  AOP 切面
     * @return Key
     */
    String resolver(ProceedingJoinPoint joinPoint, Idempotent idempotent);
}
